package com.haiya.factory.method.basic;

/**
 * @author qiaoguoqiang
 */
public class Client {
    public static void main(String[] args) {
        /**
         * 客户端 只知道品牌， 不知道具体产品
         *
         * 这里的品牌就比如ConcreateFactory1和ConcreteFactory2, 我们可以理解为是华为和小米两家工厂
         *
         * 客户要华为产品，就请求HuaweiFactory(ConcreteFactory1)来制造商品。
         * 客户要小米产品，就请求XiaomiFactory(ConcreteFactory2)来制造商品。
         *
         * 工厂方法模式中，具体工厂生产固定的对应商品
         */
        Product product1;
        AbstractFactory factory1 = new ConcreteFactory1();
        product1 = factory1.makeProduct();
        product1.show();

        Product product2;
        AbstractFactory factory2 = new ConcreteFactory2();
        product2 = factory1.makeProduct();
        product2.show();
    }
}